const Service = require('egg').Service;

class TopicService extends Service {
  constructor(ctx) {
    super(ctx);
    this.root = 'https://localhost:7001';
  }
  async promise(flag){ 
    //备忘:notify状态在此用不了 
    var promise = new Promise(function func(resolve, reject){       
      setTimeout(function() {//模拟网络延时
        console.log('完成 ',flag)
          if(flag==1)
            return resolve("成功") ;
            else return reject("错误,传{test:1}才会成功")
        }, 2000);
  });    
   return promise;     
  }

 

  async create(params) {
    // console.log(999)
    return 'service 处理 ok';
  }

  *insert(params) {
    console.log("插入",params)
    yield this.app.mysql.insert('user', { col: params });//ok   
    return yield this.app.mysql.get('user', { username: params.username });
  }
  
  *query(  params) {
    console.log("查询")
    return yield this.app.mysql.get('user', { username: params });
  }

  *delete(params) {
    console.log("删除")
    return yield this.app.mysql.delete('test', { id: params });
  }

  *update(params) {
    console.log("修改")
    const row = {
      id: params, //根据主键来更新数据表
      username: "更新",
      col: "测试",
    };
    yield this.app.mysql.update('test', row);//ok
    //  yield this.app.mysql.query('update test set col = ?' ,'col');  // query的方法就是要写sql语句
    this.ctx.body = 'ok';
    this.ctx.status = 200;
  }

  *searcch(params) {
    return yield this.app.mysql.select('test',
      { // 搜索 test 表
        where: { col: params, }, // WHERE 条件
        columns: ['col','id','username'], // 要查询的表字段,即要返回显示的字段
        orders: [['id', 'desc']], // 排序方式
        limit: 2, // 返回数据量
        offset: 0, // 数据偏移量 用于翻页
      });  //ok 
  }
 



  // // 封装统一的调用检查函数，可以在查询、创建和更新等 Service 中复用
  // checkSuccess(result) { //请求别人服务器的返回检查
  //   if (result.status !== 200) {
  //     const errorMsg = result.data && result.data.error_msg ? result.data.error_msg : 'unknown error';
  //     this.ctx.throw(result.status, errorMsg);
  //   }
  //   if (!result.data.success) {
  //     // 远程调用返回格式错误
  //     this.ctx.throw(500, 'remote response error', { data: result.data });
  //   }
  // }
}

module.exports = TopicService;